package com.cj.dao;

import com.cj.po.Dormitory;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface DormitoryDao {
    /**
     * 获取符合条件的宿舍总数
     *
     * @param g_id          学校ID
     * @param d_id          宿舍ID
     * @param d_dormbuilding 宿舍楼名
     * @param d_grade       年级
     * @return 符合条件的宿舍总数量
     */
    Integer totalCount2(@Param("g_id") Integer g_id, @Param("d_id") Integer d_id, @Param("d_dormbuilding") String d_dormbuilding, @Param("d_grade") Integer d_grade);

    /**
     * 获取宿舍列表
     *
     * @param g_id          学校ID
     * @param d_id          宿舍ID
     * @param d_dormbuilding 宿舍楼名
     * @param d_grade       年级
     * @param currentPage   当前页码
     * @param pageSize      每页显示的宿舍数量
     * @return 宿舍列表
     */
    List<Dormitory> getDormitoryList(@Param("g_id") Integer g_id, @Param("d_id") Integer d_id, @Param("d_dormbuilding") String d_dormbuilding, @Param("d_grade") Integer d_grade,
                                     @Param("currentPage") Integer currentPage, @Param("pageSize") Integer pageSize);

    /**
     * 获取所有宿舍信息
     *
     * @return 所有宿舍列表
     */
    List<Dormitory> getAll();

    /**
     * 删除指定的宿舍
     *
     * @param d_id 宿舍ID
     * @return 影响的行数
     */
    int deleteDormitory(Integer d_id);

    /**
     * 添加新的宿舍
     *
     * @param dormitory 待添加的宿舍对象
     * @return 影响的行数
     */
    int addDormitory(Dormitory dormitory);

    /**
     * 更新宿舍信息
     *
     * @param dormitory 待更新的宿舍对象
     * @return 影响的行数
     */
    int updateDormitory(Dormitory dormitory);

    /**
     * 根据宿舍ID查找宿舍信息
     *
     * @param d_id 宿舍ID
     * @return 对应的宿舍对象
     */
    Dormitory findDormitoryById(Integer d_id);
}
